package com.itlong.cloud.sdk.dao;

import com.itlong.cloud.POJO.DTO.property.PropertyAddVisitorDTO;
import com.itlong.cloud.POJO.PO.AppVisitorPassCodeRecordPO;
import com.itlong.cloud.POJO.VO.app.AppMineRoomInfoVO;
import com.itlong.cloud.POJO.VO.property.PropertyGetVisitorInfoVO;
import com.itlong.cloud.POJO.VO.property.PropertyVisitorInfoByPushVO;
import com.itlong.cloud.POJO.VO.property.PropertyVisitorInfoVO;
import com.itlong.cloud.POJO.VO.property.PropertyVisitorSendMessageVO;
import com.itlong.cloud.POJO.VO.sdk.SDKFaceVisitorInfoVO;
import com.itlong.cloud.abstracts.IAbstractBaseDao;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      人脸识别API访客数据访问接口
 * </desc>
 *
 * @createDate
 */
@Mapper
@Repository
public interface IFaceSDKVisitorPassCodeRecordDao{

    /**
     * <desc>
     *     访客列表数据
     * <desc/>
     *
     * @param  params  分页查询访客列表条件
     * @return  list 数据结果
     * @author JuGuang.S
     * @createDate 2018/06/28
     */
    List<SDKFaceVisitorInfoVO> getVisitorInfoByPage(Map<String, Object> params);

    /**
     * <desc>
     *     访客列表数据数量
     * <desc/>
     *
     * @param  params  分页查询访客条件
     * @return  Integer 数量
     * @author JuGuang.S
     * @createDate 2018/06/28
     */
    Integer getVisitorInfoCount(Map<String, Object> params);

    /**
     * <desc>
     *     根据roomid获取地址名称
     * <desc/>
     *
     * @return  Integer 数量
     * @author JuGuang.S
     * @createDate 2018/06/29
     */
    String getAdressByRoomId(@Param("roomId") String roomId);

    /**
     * <desc>
     *     校验地址是否真实存在
     * <desc/>
     *
     * @param  visitorInfoDTO  校验条件
     * @return 楼栋单元房间编号ID
     * @author JuGuang.S
     * @createDate 2019/11/18
     */
    Map<String,Object> getAddressInfo(PropertyAddVisitorDTO visitorInfoDTO);

}
